AWS Lambda のランタイムとランタイムバージョンの違いについて教えて下さい
困っていること
AWS Lambda のランタイムとランタイムバージョンの違いについて教えて下さい。
違いの解説
Lambda のランタイムについて
ランタイムとは、Lambda 関数を実行する特定のプログラミング言語とそのメジャーリリースバージョンを指定するものになります。
ランタイムの詳細につきましては「Lambda ランタイム - AWS Lambda」をご参照ください。
====抜粋====
プログラミング言語のメジャーリリースにはそれぞれ別個のランタイムがあり、固有のランタイム識別子 (nodejs20.x または python3.12 など) を持っています。
新しいメジャー言語バージョンを使用するように関数を設定するには、ランタイム識別子を変更する必要があります。
==========
ランタイムの例
Python 3.12、Node.js 20.x、Ruby 3.3 など
Lambda のランタイムバージョンについて
ランタイムバージョンとは、 Lambda が別個のランタイムについてセキュリティ更新やバグ修正などの適用を管理する、通し番号および ARN を指定するものになります。
例えば現行の Python 3.12 のランタイムバージョンは v29 となります。
ランタイムバージョンの詳細につきましては、参考資料「Lambda がランタイムバージョンの更新を管理する方法を理解する - AWS Lambda」をご参照ください。
====抜粋====
Lambda は、セキュリティ更新、バグ修正、新機能、パフォーマンス強化、およびマイナーバージョンリリースのサポートを使用して、各マネージドランタイムを最新の状態に保ちます。
これらのランタイム更新は、ランタイムバージョンとして発行されます。
==========
ランタイムバージョンの例
- Runtime Version: python:3.8.v52
Runtime Version ARN: arn:aws:lambda:ap-northeast-1::runtime:d2da00eeedb26cf3d2faaca725b024098a35c6e8a9c894dfa7015d02f6659c0a
- Runtime Version: python:3.12.v29
Runtime Version ARN: arn:aws:lambda:ap-northeast-1::runtime:667e80dac4962c4a1f927081606a12af179d00b3a26cdfbb722761c50c4e7391
ランタイムバージョンの通し番号を確認する方法
ランタイムバージョンの通し番号は、Lambda 関数 の CloudWatch 実行ログから確認できます。
コールドスタート時に、INIT_START で始まるログが出力されています。
確認方法の詳細につきましては、参考資料「[アップデート] AWS Lambdaで新しい「ランタイム管理設定」が追加されました | DevelopersIO」をご参照ください。
参考資料
- Lambda ランタイム - AWS Lambda
- Lambda がランタイムバージョンの更新を管理する方法を理解する - AWS Lambda
- [アップデート] AWS Lambdaで新しい「ランタイム管理設定」が追加されました | DevelopersIO